package com.tencent50.easy;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 最大连续的数组和，滑动窗口
 * @date 2022/7/23 20:46
 */
public class Demo06 {

    public static void main(String[] args) {
          int[] num={-2,1,-3,4,-1,2,1,-5,4};
        int i = maxSubArray(num);
        System.out.println(i);
    }
    public static int maxSubArray(int[] nums) {
         if(nums.length<0){
             return 0;
         }
         if(nums.length==1){
             return nums[0];
         }
         int max=nums[0];
         int[] newNum=new int[nums.length];
         //存储每个位置最大的连续字串
        newNum[0]=nums[0];
        for (int i = 1; i < nums.length ; i++) {
            //存储每个位置的最大连续字串和。
            newNum[i]=Math.max(nums[i]+newNum[i-1],nums[i]);
            //最大的值，要么是原来的，要么是新的
            max=Math.max(max,newNum[i]);
        }
        return max;
    }
}
